package com.example.demo;

import java.util.Arrays;

/**
 * @author jie
 * @date 2021/6/26 -17:23
 */
public class InsetSort {

  /**
   * 插入排序
   */
  public static void insertSort(int[] a) {
    int i, j, insertNote;// 要插入的数据
    for (i = 1; i < a.length; i++) {// 从数组的第二个元素开始循环将数组中的元素插入
      insertNote = a[i];// 设置数组中的第2个元素为第一次循环要插入的数据
      j = i - 1;
      while (j >= 0 && insertNote < a[j]) {
        a[j + 1] = a[j];// 如果要插入的元素小于第j个元素,就将第j个元素向后移动
        j--;
      }
      a[j + 1] = insertNote;// 直到要插入的元素不小于第j个元素,将insertNote插入到数组中
      printR(a);
    }
  }

  public static void main(String[] args) {
    int a[] = {38, 65, 97, 76, 13, 27, 49};
    printR(a);
    insertSort(a);

  }

  public static void printR(int[] r) {
    System.out.println(Arrays.toString(r));
  }

}
